Skip to content

Conversation

@mrubens
Copy link
Collaborator

@mrubens mrubens commented Oct 29, 2025

Experimental native tool calling for a few providers/models behind a vscode setting.


Important

Introduces experimental native tool calling for specific providers/models, with updates to models, API handlers, and configuration settings to support this feature.

  • Behavior:
    • Introduces native tool calling for specific providers/models, controlled by a VSCode setting nativeToolCalling in package.json.
    • Updates generateSystemPrompt.ts to check for native tool support and pass this information to SYSTEM_PROMPT.
    • Adds supportsNativeToolCalling flag to models in model.ts, anthropic.ts, and openai.ts.
  • API Handlers:
    • Modifies ApiHandler interface in index.ts to include supportsNativeTools() and tools parameter in createMessage().
    • Updates AnthropicHandler, OpenAiNativeHandler, and OpenAiHandler to handle native tool calling.
    • Implements ToolCallProcessor in tool-call-processor.ts for processing tool call deltas.
  • Tool Specifications:
    • Adds tool specifications in tool-converters.ts and tool-specs directory for various tools like read_file, write_to_file, etc.
    • Updates system.ts to generate tool specifications when native tools are enabled.
  • Testing:
    • Updates tests in ClineProvider.spec.ts and generateSystemPrompt.browser-capability.spec.ts to mock and verify native tool calling behavior.

This description was created by Ellipsis for 6c83b59. You can customize this summary. It will automatically update as commits are pushed.

@mrubens mrubens requested review from cte and jr as code owners October 29, 2025 21:10
@dosubot dosubot bot added size:XXL This PR changes 1000+ lines, ignoring generated files. enhancement New feature or request labels Oct 29, 2025
@roomote
Copy link

roomote bot commented Oct 29, 2025

Review Summary

I've reviewed the native tool calling implementation. The previously identified issue has been resolved in the recent commits.

Issues Found

  • Dead code: toolUseIdMap in Task.ts is initialized, populated, and cleared but never read

Follow Along on Roo Code Cloud

Copy link

@roomote roomote bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review complete. Please address the issue noted above before merging.

@hannesrudolph hannesrudolph added the Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. label Oct 29, 2025
@daniel-lxs daniel-lxs moved this from Triage to PR [Draft / In Progress] in Roo Code Roadmap Oct 29, 2025
@hannesrudolph hannesrudolph added PR - Draft / In Progress and removed Issue/PR - Triage New issue. Needs quick review to confirm validity and assign labels. labels Oct 29, 2025
@mrubens mrubens marked this pull request as draft October 30, 2025 03:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request PR - Draft / In Progress size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

Status: PR [Draft / In Progress]

Development

Successfully merging this pull request may close these issues.

3 participants